﻿namespace 迭代器模式
{
    /// <summary>
    /// 具体的聚集，它实现了抽象聚集中的唯一的方法，
    /// 同时在里面保存了一组数据，
    /// 这里我们加上Length属性和GetElement()方法是为了便于访问聚集中的数据。
    /// </summary>
    public class ConcreteList:IList
    {
        int[] _list;

        public ConcreteList()
        {
            _list = new[] { 1, 2, 3, 4, 5 };
        }
        public IIterator GetIterator()
        {
            return new ConcreteIterator(this);
        }

        public int Length => _list.Length;
        public int GetElement(int index) => _list[index];
    }
}
